package jp.co.toshiba.ffsa.action.csas;

import java.util.ArrayList;

import javax.annotation.Resource;

import jp.co.toshiba.ffsa.action.common.CommonAction;
import jp.co.toshiba.ffsa.form.csas.Csas102Form;
import jp.co.toshiba.ffsa.service.common.ConstantValue;

import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.MessageResourcesUtil;

/**
 * 新規ID登録>同意画面
 * @author npc
 */
public class Csas102Action extends CommonAction{
    /** 画面ID */
    public String screenID = "CSAS102";
     @ActionForm
     @Resource
     protected Csas102Form csas102Form;
    /**
     * 初期処理
     * @return 画面遷移先
     * @throws Exception
     */
    @Execute(validator = false)
    public String index() throws Exception {
        // リファラ判定
        if(this.judgeRefferer()){
            // セッションタイムアウト判定
            if(this.judgeSession()){
                return "/csas/csas102.jsp";
            }else{
                return this.topTransition;
            }
        }else{
            return this.topTransition;
        }
    }
    /**
     * 確認処理
     * @return 画面遷移先
     * @throws Exception
     */
    @Execute(validator = true,input="/csas/csas102/error")
    public String agreeUs() throws Exception {
        try{
            // リファラ判定
            if(this.judgeRefferer()){
                // セッションタイムアウト判定
                if(this.judgeSession()){
                    // 操作ログ記述
                    String result = "";
                    result = ConstantValue.success;
                    ArrayList<ArrayList<String>> parameters = new ArrayList<ArrayList<String>>();
                    ArrayList<String> parameterNames = new ArrayList<String>();
                    ArrayList<String> values = new ArrayList<String>();
                    parameterNames.add(MessageResourcesUtil.getMessage("agree"));
                    values.add(this.csas102Form.agree);
                    parameters.add(parameterNames);
                    parameters.add(values);
                    this.entryOperationHistory(this.screenID, "submit", parameters, result);
                    return "/csas/csas101";
                }else{
                    return this.topTransition;
                }
            }else{
                return this.topTransition;
            }
        }catch(Exception e) {
            this.errorLogWriter(e, "agreeUs", this.screenID);
            throw e;
        }
    }

    /**
     * バリデーションエラー処理
     * @return 遷移先
     * @throws Exception
     */
    @Execute(validator = false)
    public String error() throws Exception{
        // リファラ判定
        if(this.judgeRefferer()){
            // セッションタイムアウト判定
            if(this.judgeSession()){
                return index();
            }else{
                return this.topTransition;
            }
        }else{
            return this.topTransition;
        }
    }
}